using IM.Easy.Entity.Scheduled;
using IM.Easy.Infrastructure.Query;
using System.ComponentModel.DataAnnotations;


namespace IM.Easy.ScheduledServices.Dtos
{
    /// <summary>
    /// 调度任务扩展表查询实体
    /// </summary>
    public class ScheduledJobExtendQueryDto : QueryBase
    {
    }

    /// <summary>
    /// 调度任务扩展表创建dto
    /// </summary>
    public class ScheduledJobExtendCreateDto
    {
        /// <summary>
        /// 唯一标识
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 任务ID
        /// </summary>
        public Guid ScheduledId { get; set; }
        /// <summary>
        /// 任务类型（远程请求，本地程序）
        /// </summary>
        public JobType Type { get; set; }

        /// <summary>
        /// 可执行程序类型
        /// </summary>
        public string JobType { get; set; }

        /// <summary>
        /// 任务描述
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// 其他参数
        /// </summary>
        public List<ScheduleParams> Params { get; set; } = [];
        /// <summary>
        /// 远程地址
        /// </summary>
        public string Remote { get; set; }
        /// <summary>
        /// 远程调用方式
        /// </summary>
        public string Method { get; set; }
    }

    /// <summary>
    /// 调度任务扩展表dto
    /// </summary>
    public class ScheduledJobExtendDto
    {
        /// <summary>
        /// 唯一标识
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 任务ID
        /// </summary>
        public Guid ScheduledId { get; set; }
        /// <summary>
        /// 任务类型（远程请求，本地程序）
        /// </summary>
        public JobType Type { get; set; }

        /// <summary>
        /// 可执行程序类型
        /// </summary>
        public string JobType { get; set; }

        /// <summary>
        /// 任务描述
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// 其他参数
        /// </summary>
        public List<ScheduleParams> Params { get; set; }
        /// <summary>
        /// 远程地址
        /// </summary>
        public string Remote { get; set; }
        /// <summary>
        /// 远程调用方式
        /// </summary>
        public string Method { get; set; }
    }
}
